Electronic systems and circuits have made a significant contribution towards the advancement of modern society and are utilized in a number of applications to achieve advantageous results. Numerous electronic technologies such as digital computers, calculators, audio devices, video equipment, and telephone systems have facilitated increased productivity and reduced costs in analyzing and communicating data, ideas and trends in most areas of business, science, education and entertainment. Realizing these advantageous results frequently requires systems to manipulate very large amounts of information. The information is often communicated between devices and errors sometimes occur in the communication of information to and from the devices. These errors often have detrimental impacts on the operations and functionality of the computer system.
Errors in the communication of information often causes system crashes. For example, traditional auxiliary physical storage systems typically cannot tolerate memory error faults and the memory error faults usually have significant detrimental impacts on functionality and utility of a system. Traditional information errors often result in crashes or terminations that impede smooth operation continuity. For example, in traditional auxiliary physical storage systems the approach to memory errors is to reboot the system. Rebooting from a system crash due to a memory error is very inconvenient, usually results in wasting significant resources and significantly increasing the probability of data corruption. Traditional memory error failure modes often result in lost information and delays incurred during the reboot process waste time.
Traditional error detection systems and methods are typically either very complex or have very limited memory error detection capabilities (such as parity checking). Attempts at providing more robust error detection typically involve very complicated algorithms and/or convoluted information manipulation to detect an error. The traditional error detection systems and methods also typically perform a byte-wise calculation of an error detection code which consumes significant processing resources. Other traditional systems that attempt to provide greater granularity in the error detection, the information is broken out by software one bit at a time and each bit is individually strobed into a register. Some systems may attempt to grab 32 bits of information at the same time and multiplying each byte by 32 which in the end consumes essentially the same resources as breaking the information up and strobing it in one bit at a time.
What is required is a system and method that provides a fine granularity to error detection utilizing minimal resources.